export const ArrayUtils = {
    /**
     * 判断是否为数组
     * @param {*} arr 
     * @returns 
     */
    isArray(arr) {
        return Object.prototype.toString.call(arr) === '[object Array]';
    },
    /**
     * filter方法实现数组去重
     * @param {*} arr 
     * @returns 
     */
    arrayFilter(arr) {
        return arr.filter((element, index, self) => {
            return self.indexOf(element) === index
        })
    },
    /**
     * 利用两层循环+数组的splice方法
     * @param {*} arr 
     * @returns 
     */
    byTwoFor(arr) {
        let len = arr.length
        for (let i = 0; i < len; i++) {
            for (let j = i + 1; j < len; j++) {
                if (arr[i] === arr[j]) {
                    arr.splice(j, 1)
                    len-- // 减少循环次数提高性能
                    j-- // 保证j的值自加后不变
                }
            }
        }
        return arr
    },
    /**
     * Set()+Array.from()
     * @param {*} arr 
     * @returns 
     */
    newSet(arr) {
        return Array.from(new Set(arr))
            // 扩展运算符
            // return [...new Set(arr)]
    }

}